package io.renren.modules.pet.service;

import io.renren.common.service.CrudService;
import io.renren.modules.pet.dto.PetLostCollectDTO;
import io.renren.modules.pet.entity.PetLostCollectEntity;
import io.renren.modules.pet.vo.PetLostCollectVO;
import java.util.List;

/**
 * 丢失宠物收藏表
 *
 * @author zwp zwp
 * @since 1.0.0 2025-03-11
 */
public interface PetLostCollectService extends CrudService<PetLostCollectEntity, PetLostCollectVO> {
    
    /**
     * 保存
     * @param dto
     */
    void save(PetLostCollectDTO dto);
    
    /**
     * 修改
     * @param dto
     */
    void update(PetLostCollectDTO dto);

    /**
     * 根据宠物id查询
     * @param petLostId
     * @return
     */
    List<PetLostCollectVO> getByPetLostId(Long petLostId);

    /**
     * 根据用户id和宠物id查询
     * @param userId
     * @param petLostId
     * @return
     */
    PetLostCollectVO getByUserPetLostId(Long userId, Long petLostId);

    /**
     * 取消收藏
     * @param dto
     */
    void cancelCollectPetLost(PetLostCollectDTO dto);

    /**
     * 获取当前用户的丢失宠物收藏表
     * @param userId
     * @return
     */
    List<PetLostCollectVO> getByUserId(Long userId);

    void delByPetLostId(Long petLostId);
}